Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sort geolocation-cn #56

Merged
merged 7 commits into from
Jul 24, 2020
Merged

Sort geolocation-cn #56

merged 7 commits into from
Jul 24, 2020

Conversation

Robot-DaneelOlivaw
Copy link
Contributor

Roughly sort geolocation-cn. Add domains of Kingsoft and Moji Weather. Update a few services with access points in China as well.

@EpLiar
Copy link
Member

EpLiar commented Jul 24, 2020

fonts.googleapis.com

This domain has access points all over the world, so is it wrong to put it in geolocation-cn?

See v2ray/domain-list-community#487.

Copy link
Collaborator

@IceCodeNew IceCodeNew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/v2fly/domain-list-community/pull/56/files#diff-5fdfb53913961c17378039ab75646121R23

full:storage.googleapis.com
这行似乎不应该加入 geolocation-cn
我先是在 ipip.net 上直接输域名查到地理位置在韩国首尔,接着我在阿里云北京的服务器上执行 doh storage.googleapis.com https://223.5.5.5/dns-query,得到 IP 如下:

34.64.4.80
34.64.4.112
34.64.4.16

这些 IP 都不是国内的 IP。


用到的 doh 工具是 https://github.com/curl/doh

@EpLiar
Copy link
Member

EpLiar commented Jul 24, 2020

full:storage.googleapis.com
这行似乎不应该加入 geolocation-cn

是的,我也是这个想法,仓库迁移之前就有讨论。

换句话说,这条规则生效后,海外用户如果中国大陆是走代理,那么他们用这个服务就会走代理了,显然是不合理的。

@EpLiar EpLiar marked this pull request as draft July 24, 2020 05:46
@IceCodeNew
Copy link
Collaborator

我建议对于 Google、Apple、Microsoft 等企业,只创建对应的 google-cn 分类,但不要 include 进 geolocation-cn 里。
这个我只能说就当作特例看待吧,有需要的用户应该用 v2ray 内置 DNS 查到属于 google-cn 分类的域名确实有返回国内的 IP 地址时才去直连。
我说这里算是特例,因为项目 README 上写了我们维护这些分类并非在暗示哪些域名应该被代理哪些域名应该被屏蔽,但最终如果反而导致用户不能一行规则完成直连部分的设置,是有些得不偿失的。

作者之前给的这个 配置参考 我觉得就比较合理,但是你看要是在这个 PR 里把一些 googleapis 的域名添加进 geolocation-cn 分类下,其实是不适合上面这个配置的。

@IceCodeNew
Copy link
Collaborator

v2ray 的分流主要有下面几个问题:

  1. 增加路由条件容易,删去路由条件难。
  2. 各代理客户端自动产生的配置文件,路由规则里 direct/proxy/block 到底哪一项比哪一项优先级高没有明确规定。不同平台不同客户端可能情况就完全不同。

因此我觉得我们在维护 geolocation-cntld-cn 这些非常需要注意向下兼容的规则时,应该保持宁缺毋滥的原则。比如本次 PR 里存在的 full:storage.googleapis.com,还有 baidu-ads,我觉得最好都不要放在这里——
geolocation-cn 里只放所有用户都会接受的域名,然后对于想要额外增加直连规则的用户,则可以自行添加如 google-cn 或者 baidu-ads 这样的路由条件。

这种事没法反过来操作,假如我是一个不想 baidu-ads 走直连,希望直接 block 掉的用户,如果 geolocation-cn 里已经有这一条了,那我除了自己写自定义配置就别无办法了。因为我刚才随手找了一个 v2rayN 最新版客户端,导出自动生成的配置文件一看就发现 direct 规则优先级高于 block 规则。

@Robot-DaneelOlivaw
Copy link
Contributor Author

对于这些域名我也有疑虑,所以先发布出来让各位评判。

full:storage.googleapis.com 在不同的地区解析出了不同结果,中国南方为台北、香港,中国北方为韩国首尔,所以应该移除,我确实应该事先确认一下。其他域名都在中国有接入点。

作者之前给的这个 配置参考 我觉得就比较合理,但是你看要是在这个 PR 里把一些 googleapis 的域名添加进 geolocation-cn 分类下,其实是不适合上面这个配置的。

我之所以没有将Google纳入配置参考就是因为Google的情况比较复杂,DNS解析结果常常遭到污染,且仅有少量服务在中国有接入点,依赖DNS会造成许多不必要的延迟。

换句话说,这条规则生效后,海外用户如果中国大陆是走代理,那么他们用这个服务就会走代理了,显然是不合理的。

各代理客户端自动产生的配置文件,路由规则里 direct/proxy/block 到底哪一项比哪一项优先级高没有明确规定。不同平台不同客户端可能情况就完全不同。

我的确没有考虑到这一点。之前我认为,非中国用户只需在路由规则中将geolocation-!cn置于geolocation-cn前,这条规则就不会生效。不过现在看来,实际上用户的选择比我想象中少。

但是我仍然认为,这个项目的目的在于收集、分类域名。将全球都有接入点的域名纳入收集中国有接入点的域名列表中并不矛盾,相反baidu-ads确属于baidu,去除它将令列表不完整,这可能在暗示baidu-ads应该予以拦截,所以应该由客户端调整优先级或提供控制优先级的功能。

或许直接排列域名不大优雅,尤其当列表日趋渐长时,但也应有其它方法达成相同的效果,例如使用@cdn@cn标记(如果能在列表中使用include:google@cdn那就是最好的了),抑或建立google-cn等列表。如果确定要移除,应当连同## AMP## jsDelivr一同移除。

@EpLiar
Copy link
Member

EpLiar commented Jul 24, 2020

其实我们换个角度想……

没有代理的用户,那就用 DNS 的结果。

有代理的用户 ,都代理了管它干嘛 (

@Robot-DaneelOlivaw
Copy link
Contributor Author

其实我们换个角度想……

没有代理的用户,那就用 DNS 的结果。

有代理的用户 ,都代理了管它干嘛 (

确实,这个PR归根结底只是细枝末节。但对于系统、软件、游戏商店的下载、更新服务来说,没有细致地对CDN域名进行分类会浪费大量流量。希望能为这个PR讨论出一个目标或解决方案,作为日后解决主要问题时参考的模板。

@EpLiar
Copy link
Member

EpLiar commented Jul 24, 2020

确实,这个PR归根结底只是细枝末节。但对于系统、软件、游戏商店的下载、更新服务来说,没有细致地对CDN域名进行分类会浪费大量流量。希望能为这个PR讨论出一个目标或解决方案,作为日后解决主要问题时参考的模板。

不确定的结果,可以先 delay,决定权交给用户。

@EpLiar EpLiar marked this pull request as ready for review July 24, 2020 08:43
@EpLiar EpLiar merged commit 230f7cb into v2fly:master Jul 24, 2020
@EpLiar
Copy link
Member

EpLiar commented Jul 24, 2020

不得不说这 GitHub App 怎么连个取消 Draft 的功能都没有,真鸡肋 (

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants